package base;

import android.content.Context;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * M-V-C  复用的线程
 * 数据模型层全局类
 * Created by lt on 2017\5\17 0017.
 */
public class Model {
    private Context mContext;
    /**
     * 这种线程池比较灵活，也就是说它的池里的线程数量并不是固定的，
     * 理论上可以无限大，任务不需要排队，如果有空闲的线程，则复用，无则新建线程
     */
    private ExecutorService executor= Executors.newCachedThreadPool();
    private static Model instance=null;
    private static final Object LOCK=new Object();
    private Model() {
    }
    //懒汉式单例 并发时线程不安全 所以要加同步锁
    public static Model getInstance(){
        if(instance==null){
            synchronized (LOCK){  //同步代码块
                instance=new Model();
            }
        }
        return instance;
    }
    /**
     * 获取全局线程池对象
     * @return
     */
    public ExecutorService getGlobalThreadPool(){
        return executor;
    }

}
